package site.sorghum.ddl.defaults;

import java.sql.JDBCType;

/**
 * JDBC类型到数据库字段大小/精度的转换器
 */
public class JdbcTypeToDbSizeDigitConverter {

    /**
     * 获取指定JDBC类型对应的字段长度
     * @param jdbcType JDBC类型枚举
     * @return 字段长度值（如CHAR返回255），不适用时返回null
     */
    public static Integer getSize(JDBCType jdbcType) {
        // 空值检查
        if (jdbcType == null) {
            return null;
        }

        // 根据不同类型返回预设长度值
        switch (jdbcType) {
            case CHAR:
            case VARCHAR:
                return 255;  // 字符串默认长度
            default:
                return null; // 不支持的类型
        }
    }

    /**
     * 获取指定JDBC类型对应的小数位精度
     * @param jdbcType JDBC类型枚举
     * @return 小数位精度（仅DECIMAL/NUMERIC返回10），其他类型返回null
     */
    public static Integer getDigit(JDBCType jdbcType) {
        // 空值检查
        if (jdbcType == null) {
            return null;
        }

        // 仅处理数值类型
        switch (jdbcType) {
            case DECIMAL:
            case NUMERIC:
                return 10;   // 默认小数精度
            default:
                return null; // 不支持的类型
        }
    }
}
